Integrated circuits are used to implement a variety of applications. However, certain applications, such as military, aerospace, and some communications applications, must be highly reliable. Therefore, redundant circuits are often employed. While duplicating a circuit in a device will enable error detection, triple module redundancy (TMR) is a redundancy technique for ensuring that a circuit functions even if one of the circuits is not operating properly, where corresponding values output by the remaining two circuits will ensure that the output of the circuit is correct.
However, implementing a circuit with redundancy can be expensive because it requires that a circuit be implemented multiple times. Temporal redundancy has been proposed in software for finding soft errors. That is, a given calculation is run twice, and the two runs are compared. Temporal redundancy in a software application requires no additional hardware, but does take twice the time. Implementing any type of redundancy in a hardware application according to conventional methods requires multiple implementations of a hardware circuit. While such redundancy of hardware may be acceptable for some systems, the additional area required for redundant circuits may significantly reduce the available space on the integrated circuit for implementing circuits.